#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
键盘识别检测系统配置文件
"""

# 摄像头配置
CAMERA_CONFIG = {
    'camera_id': 0,  # 摄像头ID
    'width': 1280,   # 图像宽度
    'height': 720,   # 图像高度
    'fps': 30,       # 帧率
}

# 检测配置
DETECTION_CONFIG = {
    'detection_interval': 2.0,  # 检测间隔（秒）
    'min_confidence': 0.5,      # 最小置信度
    'max_errors_display': 10,   # 最大显示错误数
}

# 字符检测配置
CHARACTER_DETECTION_CONFIG = {
    'min_char_area': 200,        # 最小字符区域面积
    'max_char_area': 5000,       # 最大字符区域面积
    'char_aspect_ratio_range': (0.5, 2.0),  # 字符长宽比范围
    'contour_area_threshold': 200,  # 轮廓面积阈值
    'min_contour_perimeter': 50,    # 最小轮廓周长
}

# 图像预处理配置
IMAGE_PREPROCESSING_CONFIG = {
    'gaussian_blur_kernel': (3, 3),  # 高斯模糊核大小
    'adaptive_thresh_block_size': 11,  # 自适应阈值块大小
    'adaptive_thresh_c': 2,           # 自适应阈值常数
    'morphology_kernel_size': (2, 2), # 形态学操作核大小
}

# 旋转校正配置
ROTATION_CORRECTION_CONFIG = {
    'min_rotation_angle': 1.0,    # 最小旋转角度阈值
    'max_rotation_angle': 45.0,   # 最大旋转角度阈值
    'canny_low_threshold': 50,    # Canny边缘检测低阈值
    'canny_high_threshold': 150,  # Canny边缘检测高阈值
    'hough_threshold': 100,       # 霍夫变换阈值
}

# 像素检测配置
PIXEL_DETECTION_CONFIG = {
    'min_keyboard_area_ratio': 0.1,      # 最小键盘区域面积比例
    'key_contour_area_range_ratio': (0.0001, 0.01),  # 按键轮廓面积比例范围
    'aspect_ratio_tolerance': 0.3,       # 长宽比容差
    'position_tolerance_ratio': 0.05,    # 位置容差比例
    'size_tolerance_ratio': 0.2,         # 大小容差比例
    'angle_tolerance': 10.0,             # 角度容差（度）
}

# 日志配置
LOGGING_CONFIG = {
    'level': 'INFO',
    'format': '%(asctime)s - %(levelname)s - %(message)s',
    'file': 'keyboard_inspector.log',
    'max_file_size': 10 * 1024 * 1024,  # 10MB
    'backup_count': 5,
}

# GUI配置
GUI_CONFIG = {
    'window_title': '键盘识别检测系统 - 工业质检工具 v2.0',
    'window_size': '1600x900',
    'canvas_bg_color': 'white',
    'log_height': 8,
}

# 文件路径配置
FILE_PATHS = {
    'reference_images': 'reference_images/',
    'detection_results': 'detection_results/',
    'logs': 'logs/',
    'temp': 'temp/',
}